# syntax=docker/dockerfile:1.6
# --------------------------------------------------------------------------
# Eugene Agent UI (Next.js 14) — multi-stage build
# --------------------------------------------------------------------------
FROM node:20-bookworm-slim AS deps
WORKDIR /app
COPY agents/eugene-agent-ui-next/package.json ./
# no lockfile committed — let npm resolve and cache
RUN --mount=type=cache,target=/root/.npm \
    npm install --no-audit --no-fund

FROM node:20-bookworm-slim AS builder
WORKDIR /app
ENV NEXT_TELEMETRY_DISABLED=1
COPY --from=deps /app/node_modules ./node_modules
COPY agents/eugene-agent-ui-next/ .
RUN npm run build

FROM node:20-bookworm-slim AS runner
WORKDIR /app
ENV NODE_ENV=production \
    NEXT_TELEMETRY_DISABLED=1 \
    PORT=18502 \
    HOSTNAME=0.0.0.0

RUN addgroup --system --gid 1001 nodejs \
 && adduser  --system --uid 1001 --ingroup nodejs nextjs

# Standalone output bundles only what is needed for runtime
COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
COPY --from=builder --chown=nextjs:nodejs /app/public ./public

USER nextjs
EXPOSE 18502
CMD ["node", "server.js"]
